Skip to content

Conversation

@mpaiao
Copy link
Contributor

@mpaiao mpaiao commented Apr 18, 2025

Description:

This pull request is part of the #1385 task (and previously pointed out in #204). The goal is to allow for more flexibility in how we parameterise cold-deciduous PFT. Similar to the drought deciduous site variables, the cold deciduous ones are now PFT-specific, and previous parameters that were global were replaced with PFT-specific parameters, using the same name. Most parameters existed already in FATES, but there is a new one, fates_phen_gddtemp, which is the lower temperature threshold above which growing degree days accumulate. This was implicitly set to 0°C in the code, so this is the default value for all PFTs, but this typically varies by PFT.

In this pull request, I also eliminated a locally defined parameter dleafon_drycheck in biogeochem/EDPhysiologyMod.F90, which was only used by drought deciduous. In this pull request, we instead take the values from the now PFT-specific parameter fates_phen_mindayson. The difference in values amongst PFTs reflects the differences that already existed between cold- (90 days) and drought-deciduous (100 days), though both values are arbitrary.

By turning most site-level, phenology-related variables into PFT vectors, I replaced the duplicated list of duplicated variables that were specific to cold or drought-deciduous into a single set. The table below shows how the new variables relate to the old ones.

New variable Former cold deciduous Former drought deciduous
currentSite%phen_status currentSite%cstatus currentSite%dstatus
currentSite%leafoffdate currentSite%cleafoffdate currentSite%dleafoffdate
currentSite%leafondate currentSite%cleafondate currentSite%dleafondate
currentSite%leafondate currentSite%cleafondate currentSite%dleafondate
currentSite%ndaysleafoff currentSite%cndaysleafoff currentSite%dndaysleafoff
currentSite%ndaysleafon currentSite%cndaysleafon currentSite%dndaysleafon

This pull request will become incompatible with NGEET:main once #1355 is merged, and will require some minor updates. It is probably better to merge #1355 first, then apply the changes needed before merging this one (but this pull request can be revised in the meantime).

Collaborators:

@rgknox @glemieux @rosiealice @XiulinGao @lmkueppers @ckoven

Expectation of Answer Changes:

This PR should be bit-for-bit, this just changes the dimensionality of parameters and variables.

Checklist

If this is your first time contributing, please read the CONTRIBUTING document.

All checklist items must be checked to enable merging this pull request:

Contributor

  • The in-code documentation has been updated with descriptive comments
  • The documentation has been assessed to determine if updates are necessary

Integrator

  • FATES PASS/FAIL regression tests were run
  • Evaluation of test results for answer changes was performed and results provided
  • FATES-CLM6 Code Freeze: satellite phenology regression tests are b4b

If satellite phenology regressions are not b4b, please hold merge and notify the FATES development team.

Documentation

Test Results:

CTSM (or) E3SM (specify which) test hash-tag:

CTSM (or) E3SM (specify which) baseline hash-tag:

FATES baseline hash-tag:

Test Output:

@glemieux glemieux requested a review from rgknox April 21, 2025 19:35
@glemieux
Copy link
Contributor

#1355 should be integrated prior to this.

@ckoven ckoven mentioned this pull request Apr 21, 2025
@glemieux glemieux added inputs: parameter file Pertaining to changes to the FATES parameter file parameters: new Pertaining to adding new parameters to the parameter file science: phenology labels Apr 23, 2025
samsrabin added 7 commits May 10, 2025 17:30
The goal here is to simplify things and improve my understanding before more substantive refactoring and fixing. Changes:
- Do everything within one patch loop, rather than looping through to get numerators and denominators separately, then looping again to do the division.
- Use new "weight" variable instead of repeating (e.g.) "cpatch*area * AREA_INV".
- Replace "hio_area_si_age(io_si, ipa2)*AREA" with "sites(s)%area_by_age(ipa2)"
- Replace "sites(s)%area_by_age(cpatch%age_class)" with new "age_class_area" variable.

Should be identical within roundoff precision. Affected variables:
- FATES_BURNFRAC_AP
- FATES_CANOPYAREA_AP
- FATES_FIRE_INTENSITY_BURNFRAC_AP
- FATES_FUEL_AMOUNT_AP
- FATES_GPP_AP
- FATES_LAI_AP
- FATES_LBLAYER_COND_AP
- FATES_NCL_AP
- FATES_NPP_AP
- FATES_SCORCH_HEIGHT_APPF
- FATES_SECONDAREA_ANTHRODIST_AP
- FATES_SECONDAREA_DIST_AP
- FATES_STOMATAL_COND_AP
- FATES_VEGC_AP
- FATES_ZSTAR_AP

Also renames various internal FatesHistoryInterfaceMod variables from "area" to "fracarea" for clarity (units are m2/m2, not m2).
To avoid similar mistakes in the future, adds function SumMortForHistory to fates_cohort_type.
These are useful for checking whether the per-ageclass versions are normalized correctly.
* FATES_CANOPYAREA
* FATES_NCL
* FATES_PATCHAREA
* FATES_SCORCH_HEIGHT_PF
* FATES_SECONDAREA_ANTHRODIST
* FATES_SECONDAREA_DIST
* FATES_ZSTAR
Now dividing by total site area instead of age-class area:
- FATES_GPP_AP
- FATES_NPP_AP
- FATES_LAI_AP
- FATES_NCL_AP
- FATES_SCORCH_HEIGHT_APPF

Now dividing by site-wide canopy area instead of age-class canopy area:
- FATES_LBLAYER_COND_AP
- FATES_STOMATAL_COND_AP
samsrabin and others added 28 commits May 10, 2025 17:53
Used in history outputs to get biomass of each organ, plus alive and total biomass.
Co-authored-by: Gregory Lemieux <[email protected]>
Useful for checking that FATES_PRIMARY_AREA_AP has the correct denominator.
…_AP.

For consistency with other ageclass-stratified outputs.
… counts, and updating everything else that dependons on that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inputs: parameter file Pertaining to changes to the FATES parameter file parameters: new Pertaining to adding new parameters to the parameter file science: phenology

Projects

Status: Under Review

Development

Successfully merging this pull request may close these issues.

5 participants